/**
 * 获取 dictType 对应的数据字典数组
 *
 * @param dictType 数据类型
 * @returns {*|Array} 数据字典数组
 */
export interface DictDataType {
  dictType: string
  label: string
  value: string | number | boolean
}



/**
 * 字典类型枚举
 */
export enum DICT_TYPE {
  // 这里添加您的字典类型枚举
  COMMON_STATUS = 'common_status',
  API_KEY_TYPE = 'api_key_type',
  AI_MODEL_TYPE = 'ai_model_type',
  INFRA_BOOLEAN_STRING = 'infra_boolean_string',
  // 添加其他字典类型...
}

/**
 * 获取整数字典选项
 */
export const getIntDictOptions = (dictType: DICT_TYPE): Array<{ label: string; value: number }> => {
  // 这里根据字典类型返回相应的选项
  // 您可以替换为从API获取数据或使用本地数据
  return getIntDict(dictType);
}

export const getStrDictOptions = (dictType: DICT_TYPE): Array<{ label: string; value: string }> => {
  // 这里根据字典类型返回相应的选项
  // 您可以替换为从API获取数据或使用本地数据
  return getStrDict(dictType);
}

/**
 * 获取字典标签
 */
export const getDictLabel = (dictType: DICT_TYPE, value: any): string => {
  const options = getIntDictOptions(dictType)
  const option = options.find(opt => opt.value === value)
  return option ? option.label : ''
}

function getStrDict(dictType: DICT_TYPE) {
  switch (dictType) {
    case DICT_TYPE.API_KEY_TYPE:
      return [
        { label: 'DeepSeek', value: 'DeepSeek' },
        { label: 'TongYi', value: 'TongYi' },
        // { label: 'NULL', value: 'NULL' }
      ];
    default:
      return [];
  }
}
function getIntDict(dictType: DICT_TYPE) {
  switch (dictType) {
    case DICT_TYPE.COMMON_STATUS:
      return [
        { label: '启用', value: 0 },
        { label: '禁用', value: 1 }
      ];
    case DICT_TYPE.AI_MODEL_TYPE:
      return [
        { label: '对话模型', value: 1 },
        { label: '向量模型', value: 2 }
      ];
    case DICT_TYPE.INFRA_BOOLEAN_STRING:
      return [
        { label: '是', value: 0 },
        { label: '否', value: 1 }
      ];
      
    default:
      return [];
  }
}